/*
 * Copyright (c) 2015. For Intelligent Group.
 */

package com.intelligent.ispc.core.service;

import com.intelligent.ispc.core.dto.*;
import com.intelligent.ispc.core.entity.GRRTestData;

import java.util.List;
import java.util.Map;

/**
 * Created by Julia.Zhou on 2016/02/28.
 */
public interface GRRTestDataService {
    List<GRRAnalysisParamDto> searchGRRTestItems(Map<String, Object> searchParams);

    GRRAnalysisParamDto searchGRRTestItem(Map<String, Object> searchParams);

    List<String> searchDistinctGRRName(Map<String, Object> searchParams);

    List<String> searchDistinctStation(Map<String, Object> searchParams);

    List<StationDto> searchStationByGRRName(Map<String, Object> searchParams);

    List<AnalysisKeyResultDto> searchAnalysisKeys(Map<String, Object> searchParams);

    List<BaseDto> searchDistinctTestItemName(Map<String, Object> searchParams);

    List<GRRTestDataDto> searchGRRTestDatas(Map<String, Object> searchParams);

    List<GRRSummaryDto> searchGRRSummary(Map<String, Object> searchParams);

    GRRSummaryDto refreshGRRSummary(Map<String, Object> searchParams);

    void saveGRRSummary(List<GRRSummaryDto> grrSummaryDtoList);

    void deleteGRRSummary(Map<String, Object> searchParams);

    List<GRRDataDto> searchGRRTestData(Map<String, Object> searchParams);

    GRRResultDto searchGRRResult(Map<String, Object> searchParams);

    GRRResultDto refreshGRRResult(Map<String, Object> searchParams);

    List<GRRExportResultDto> searchGRRExportResult(Map<String, Object> searchParams);

    List<GRRSummaryDto> searchGRRSummaryForExport(Map<String, Object> searchParams);

    void saveGRRAnova(List<GRRAnovaDto> grrAnovaDtoList);

    void deleteGRRAnova(Map<String, Object> searchParams);

    List<GRRAnovaDto> searchGRRAnova(Map<String, Object> searchParams, GRRAnalysisParamDto grrAnalysisParamDto);

    void saveGRRSource(List<GRRSourceDto> grrSourceDtoList);

    void deleteGRRSource(Map<String, Object> searchParams);

    List<GRRSourceDto> searchGRRSource(Map<String, Object> searchParams, GRRAnalysisParamDto grrAnalysisParamDto);

    void deleteGRRTestData(String grrName, String projectId);

    void checkGRRTestData(Map<String, Object> searchParams, List<GRRTestData> grrTestDataList);

    void saveGRRItem(GRRItemDto grrItemDto);

    void updateGRRItem(GRRItemDto grrItemDto);

    void deleteGRRItem(Map<String, Object> searchParams);

    void updateCacheGRRItem(Map<String, Object> searchParams);

    GRRItemDto searchGRRItem(Map<String, Object> searchParams);

    boolean checkGRRName(String grrName, String projectId);

    GRRChartDto searchGRRChart(Map<String, Object> searchParams);

    String getStationAndSlot(Map<String, Object> searchParams);

    String getAnalysisKeys(Map<String, Object> searchParams);

    void updatePSGRR(PSGRRDto psGRRDto);
}
